In a network processor, there are numerous applications that require fast lookups such as per-flow state management, IP lookup and packet classification. Several techniques can be used to implement lookup systems such as TCAM-based, hash-based and direct-access lookups. Hash-bashed lookup techniques and direct-access lookup techniques have lower memory cost and are faster than TCAM-based lookup techniques. State-of-the-art hash-based lookup techniques are based on a D-LEFT hash lookup scheme because of its high efficiency in using memories. However, in lookup systems of the prior art using these lookup techniques, the number of memories used for each lookup is fixed. This inflexibility prohibits any change to the memory capacity of each lookup after the systems are manufactured. In addition, lookup systems of the prior art cannot be changed from one lookup technique, such as hash-based, to another lookup technique, such as direct-access, to achieve 100% memory utilization, which can be useful in applications including exact-match lookup.